﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace MN.Framework
{
    public class FrameworkMessages
    {
        // Fields
        private static FrameworkMessages instance = new FrameworkMessages();
        List<MnMessage> MessageCollection = new List<MnMessage>();
        // Methods
        static FrameworkMessages()
        {
            instance.MessageCollection.Add(new MnMessage("MnShell", "ObsoleteException", "لطفا نحوه استفاده از استثنائات را تغییر دهید {0}"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "ValueCantBeEmpty", "مقدار مشخصه '{0}' وارد نشده است"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "InvalidLogicalOperationValue", "مقدار مشخصه '{0}' باید {1} {2} باشد"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "UnexpectedPropertyForConfiguration", "مشخصه {0} برای پیکربندی درست تنظیم نشده است"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "ChangeConflictException", "اطلاعات توسط کاربر دیگری تغییر کرده است"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "AuthorizationFailed", "شما دسترسی لازم برای انجام این عملیات را ندارید"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "OneOfTheValuesAreValid", "یکی از مقادیر '{0}' برای '{1}' وارد نشده است"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "ReferededEntityNotFound", "مبنای موجودیت '{0}' با شناسه '{1}' یافت نشد"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "TransformedEntityCannotBeUpdated", "امکان به روزرسانی موجودیت '{0}' در موجودیت فعلی '{1}' وجود ندارد"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "CanNotDeleteRecordAtThisState", "حذف رکورد در این وضعیت مجاز نیست"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "CanNotUpdateRecordAtThisState", "ویرایش رکورد در این وضعیت مجاز نیست"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "OutOfFiscalYearRange", "'{0}' خارج از محدوده سال مالی فعال است"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "InvalidAuthenticationSession", "سیستم قادر به احراز هویت کاربر جاری نیست. لطفاً صفحه وب جاری را Refresh کنید یا مجدداً به سیستم ویندوزی وارد شوید."));
            instance.MessageCollection.Add(new MnMessage("MnShell", "CannotModifyRecordInThisState", "امکان ویرایش {0} در وضعیت {1} وجود ندارد"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "CannotDeleteRecordInThisState", "امکان حذف {0} در وضعیت {1} وجود ندارد"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "TransitionFromSourceStateToTargetStateIsNotSupported", "امکان تغییر وضعیت رکوردهای موجودیت {0} از {1} به {2} وجود ندارد."));
            instance.MessageCollection.Add(new MnMessage("MnShell", "AccessDeniedToTransitionFromSourceStateToTargetState", "شما دسترسی تغییر وضعیت رکوردهای موجودیت {0} از {1} به {2} را ندارید."));
            instance.MessageCollection.Add(new MnMessage("MnShell", "ChangeState", "تغییر وضعیت: {0} -> {1}"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "RecordNotFoundInDatabase", "رکورد موردنظر در پایگاه داده وجود ندارد."));
            instance.MessageCollection.Add(new MnMessage("MnShell", "TheObjectHasBeenAlreadyLocked", "شیء موردنظر شما قفل شده است."));
            instance.MessageCollection.Add(new MnMessage("MnShell", "CannotDeleteEntityDueToItsBeingSourceOfAnExistingRelation", "برمبنای '{0}' موردنظر، '{1}' ثبت شده و نمی توان آن را حذف کرد."));
            instance.MessageCollection.Add(new MnMessage("MnShell", "InsertAccessDeniedByRLS", "شما امکان درج این موجودیت را ندارید"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "UpdateAccessDeniedByRLS", "شما امکان به روزرسانی این موجودیت را ندارید"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "DeleteAccessDeniedByRLS", "شما امکان حذف این موجودیت را ندارید"));
            instance.MessageCollection.Add(new MnMessage("MnShell", "ChangeStateAccessDeniedByRLS", "شما امکان تغییر وضعیت این موجودیت را ندارید"));
            //instance.ExceptionMappingCollection.Add(new ExceptionMapping("ChangeConflictException", 0x7fffffff, new SgKeyword("Row not found or changed", SgKeywordType.Default), new SgKeyword[0]));
        }

        //public MessageContainer GetSingleton()
        //{
        //    return instance;
        //}

        // Properties
        public static MnMessage AccessDeniedToTransitionFromSourceStateToTargetState
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "AccessDeniedToTransitionFromSourceStateToTargetState");
            }
        }

        public static MnMessage AuthorizationFailed
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "AuthorizationFailed");
            }
        }

        public static MnMessage CannotDeleteEntityDueToItsBeingSourceOfAnExistingRelation
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "CannotDeleteEntityDueToItsBeingSourceOfAnExistingRelation");
            }
        }

        public static MnMessage CanNotDeleteRecordAtThisState
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "CanNotDeleteRecordAtThisState");
            }
        }

        public static MnMessage CannotDeleteRecordInThisState
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "CannotDeleteRecordInThisState");
            }
        }

        public static MnMessage CannotModifyRecordInThisState
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "CannotModifyRecordInThisState");
            }
        }

        public static MnMessage CanNotUpdateRecordAtThisState
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "CanNotUpdateRecordAtThisState");
            }
        }

        public static MnMessage ChangeConflictException
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "ChangeConflictException");
            }
        }

        public static MnMessage ChangeState
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "ChangeState");
            }
        }

        public static MnMessage ChangeStateAccessDeniedByRLS
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "ChangeStateAccessDeniedByRLS");
            }
        }

        public static MnMessage DeleteAccessDeniedByRLS
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "DeleteAccessDeniedByRLS");
            }
        }

        public static MnMessage InsertAccessDeniedByRLS
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "InsertAccessDeniedByRLS");
            }
        }

        public static MnMessage InvalidAuthenticationSession
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "InvalidAuthenticationSession");
            }
        }

        public static MnMessage InvalidLogicalOperationValue
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "InvalidLogicalOperationValue");
            }
        }

        public static MnMessage ObsoleteException
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "ObsoleteException");
            }
        }

        public static MnMessage OneOfTheValuesAreValid
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "OneOfTheValuesAreValid");
            }
        }

        public static MnMessage OutOfFiscalYearRange
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "OutOfFiscalYearRange");
            }
        }

        public static MnMessage RecordNotFoundInDatabase
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "RecordNotFoundInDatabase");
            }
        }

        public static MnMessage ReferededEntityNotFound
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "ReferededEntityNotFound");
            }
        }

        public static MnMessage TheObjectHasBeenAlreadyLocked
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "TheObjectHasBeenAlreadyLocked");
            }
        }

        public static MnMessage TransformedEntityCannotBeUpdated
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "TransformedEntityCannotBeUpdated");
            }
        }

        public static MnMessage TransitionFromSourceStateToTargetStateIsNotSupported
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "TransitionFromSourceStateToTargetStateIsNotSupported");
            }
        }

        public static MnMessage UnexpectedPropertyForConfiguration
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "UnexpectedPropertyForConfiguration");
            }
        }

        public static MnMessage UpdateAccessDeniedByRLS
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "UpdateAccessDeniedByRLS");
            }
        }

        public static MnMessage ValueCantBeEmpty
        {
            get
            {
                return instance.MessageCollection.Find(x => x.Name == "ValueCantBeEmpty");
            }
        }
    }


}
